In performing various robotic tasks, it may be beneficial and/or necessary for robots to detect environmental objects and/or to estimate poses (positions and orientations) for those detected objects. For example, a robot may need to know an object's pose before determining how best to pick it up (e.g., with a robotic arm of the robot). Various techniques have been utilized for detecting objects and estimating their poses. For example, a robot may have access to a complete three-dimensional (“3D”) object model of an object that is a generated CAD model of the object. The robot may acquire data from a 3D laser scanner or other 3D vision sensor (e.g., stereographic camera) viewing a portion of the robot's environment, and map such data to the complete 3D object model to determine the object is present in the environment and to estimate the object's pose in the environment.
However, in many situations a robot may encounter an object in its environment that it is unable to recognize. For example, the robot may encounter an object that does not sufficiently match an existing 3D model and, as a result, be unable to detect the object and/or estimate a pose of the object.